An integrated output buffer circuit oftentimes receives digital signals from transmission lines to provide an input signal to a downstream integrated circuit. It is known that even though the ideal input signal is a rectangular signal which has straight edges, transmission line signals are noisy. Most common noise sources are ground/Vcc bounce on output buffers, reflection through transmission lines and cross-talk. When the noisy signals are received at integrated circuit inputs, these noisy signals produce false edges which can cause improper circuit operation.
As is generally well known, in order to provide smaller and faster devices in CMOS process technology, circuits have a reduced scaling or a shrinking of the geometries thereof. For example, the channel length of the devices, which have been around 1.6 microns, are further reduced to under 1 micron so as to achieve higher speeds of operation. In particular, when the channel length of the device decreases, delay through the device will be reduced so as to yield a faster device. However, the shrinking of the sizes of the integrated semiconductor devices to a smaller size has not been accomplished without any resulting problems. In general, the faster output transitions cause the higher ground/Vcc bounces and bigger reflection on the line. Such semiconductor devices of reduced dimensions fail generally from being more noise sensitive (i.e., lower noise immunity) and being not capable of providing reliable data transfer.
One application where noise immunity and reliable data transfer becomes important is in the field of data transmission on a fully loaded Small Computer System Interface (SCSI) bus line which is coupled from a transmission line for communication in computer systems. The basic problem encountered when transferring data on the SCSI bus line is due to noise causing glitches. Glitches in the signal may cause double strobing of the data. The glitches are more hazardous when they appear on the request (REQ) and acknowledge (ACK) lines.
The control signals REQ and ACK are used to perform a "handshake" in asynchronous mode so as to transfer the data back and forth between a target (for example, a disc drive) and an initiator (for example, a host computer). A glitch occurring in the control signal ACK can cause one or more extra bytes to be counted during data transfers at the transfer rate of between 1.0-10 Mbytes/sec. On the other hand, the incorrect or wrong data could be transferred such as when an early control signal ACK occurs and the data signal lines are still being settled, thus causing the wrong data to be sampled.
One way to alleviate this noise problem is to reduce the signal rise and fall rate, commonly known as slew rate. A smaller device will have a reduced slew rate and accordingly, less noise. However, output buffers usually require large device sizes to meet a sinking current I.sub.oI specification. For instance, SCSI outputs require I.sub.oI =48 milliampere (sinking current when signal is asserted, or at low-level). A smaller device may not be able to sink enough current to meet the I.sub.oI specification. Therefore, employing a smaller device alone is not enough to solve the noise problem.
In prior arts, output buffers are segmented in several smaller devices and turned on sequentially through delay elements. In order to minimize noise when a high-to-low transition (falling edge) occurs at the output of the device (when device is being asserted), the devices should be sequentially turned on from the smallest to the largest size. Unfortunately, this arrangement doesn't help to minimize noise in the case of a low-to-high transition (rising edge) at the output of the device. When the smallest device is turned off first, the sinking current of the output device (composed of pull-down transistors) remains high because most of the sinking current is still being provided by the larger devices. Consequently, the voltage level at the output buffer remains relatively low until the largest device is turned off. Accordingly, turning off the largest device last would still give an abrupt voltage transition sufficient to generate the hazardous noise at the rising edge of the output. Therefore, in order to minimize noise during the rising edge, the turn-off sequence of the output buffers is required to be from the largest to the smallest size - a reverse order of the high-to-low transition.
One way of addressing the noise problem in case of a low-to-high transition at the output is to use an active negation circuit that pulls up the output signal fast such that the glitch due to reflection happens out of the input threshold region. However, this solution is expensive. Besides, it is difficult to implement because of stringent design requirements. Specifically, in order to function properly, the active negation circuit should be fast but not faster than 5 ns and cannot leak current when the signal is deserted (negated, or at high-level). Therefore most of SCSI systems still employ a resistor, commonly known as a passive terminator, coupled between the output and the power supply Vcc. Thus, system problems often arise due to glitch on the rising edge of signals.
Accordingly, what is needed is a circuit to address the above-mentioned problems. More particularly, what is necessary is a circuit that will allow for the minimizing ground/Vcc bounce on a transmission line or the like during the time when the output signal makes a low-to-high transition as well as a high-to-low transition. Finally, the circuit should be one which is easily implemented in existing technologies. The present invention addresses the above described problems.